package com.xunfang.controller;

import com.xunfang.bean.Book;
import com.xunfang.bean.Result;
import org.springframework.web.bind.annotation.*;

/**
 * @author yellow Docter
 * @date 2023 -10-12
 * @desc
 *  restful风格参数问题:
 *    1、在url上面有参数
 *        get/delete请求
 *        localhost:8080/books/101
 *    2、put和 post 有对象
 *        post\put 不在URL携带参数、参数在请求体中  (http协议)
 *
 *      1、前端发送的数据是json 在请求体中
 *            鸿蒙 promise
 *            vue axios (基于 promise)
 *            JQuery  基于 (ajax进行封装)
 *            postman发送 数据
 *
 *      2、后的接受的数据、需要吧json转成 java对象
 *           @RequestBody   把前端发送过来的数据转成java对象
 *           @ResponseBody  把java对象转成json字符串返回给前端
 *
 */
@RestController
@RequestMapping("books")
public class Book2Controller {

    @PostMapping
    public Result addBook(@RequestBody Book book){
        System.out.println("book = " + book);
        return Result.ok("添加成功");
    }

    @PutMapping
    public Result updateBook(@RequestBody Book book){
        System.out.println("book = " + book);
        return Result.ok("修改成功");
    }

    @DeleteMapping("{id}")
    public Result deleteBook(@PathVariable Integer id){
        System.out.println("id = " + id);
        return Result.ok("删除成功");
    }

    //{id} 是Url上面的占位符
    // @PathVariable 获取路径参数的注解
    @GetMapping("{id}")
    public Result findBook(@PathVariable Integer id){

        Book book = new Book();
        book.setId(101);
        book.setName("活着");
        book.setAuthor("余华");
        return Result.ok(book);
    }

}
